Silicon initialization may include various operations to be performed upon activation of a device prior to loading an operating system (OS). Examples of these operations may include, but are not limited to, obtaining information about equipment included in the device, loading drivers for the equipment, establishing interfaces for facilitating interaction between the equipment and software to be loaded in the device (e.g., the OS), etc. At least part of the silicon initialization may pertain to individual components and/or chipsets (e.g., a processor, coprocessor, support components such as bus controllers, memory, memory controllers, etc.) that may be employed in the device, and thus, may be identical for every device utilizing the individual components and/or chipsets. When implemented in similarly configured devices, there is no reason for a user of the equipment (e.g., device developer, device manufacturer, device seller, device repair facility, etc.) to alter this portion of the silicon initialization.
However, the continual expansion of computing functionality to a wide array of new applications is requiring some level of customization. For example, equipment may be used in a variety of devices (e.g., stationary computing devices, mobile computing devices, mobile communication devices, etc.). Utilization of the same equipment may be advantageous from an economy of scale, but may also require tweaking to make the equipment function correctly in different operational environments. Historically, silicon initialization operations would be developed jointly between the equipment manufacturer and device manufacture. However, such collaboration is resource intensive and may result custom silicon initialization code that cannot be universally applied. Another approach is to give device developers access to boot code so that they can develop custom silicon initialization operations based on the particular device. An issue with giving the device developers full access to designing their own silicon initialization is that the industry standards may not be maintained, guidelines provided by the equipment manufacturer may not be followed, etc. Thus, there is no way to ensure that the equipment will operate in the manner intended, will remain stable, will remain secure, etc.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications and variations thereof will be apparent to those skilled in the art.